package com.ghovos.usermangerpgdemo.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ghovos.usermangerpgdemo.entity.DepartmentEntity;

import java.util.List;

/**
 * @author EdgarLiu(刘凌峰) <br/>
 * date: 2022/3/18 <br/>
 * time: 上午11:07 <br/>
 * email: EdgarLlf@foxmail.com
 */
public interface DepartmentService extends IService<DepartmentEntity> {
    /**
     * 获取所有department 的信息
     * @return  department 信息
     */
    List<DepartmentEntity> allDepartmentListExt();
    /**
     * 根据id 查询 department  包括用户列表
     * @param id 部门id
     * @return department 实体
     */
    DepartmentEntity getDepartExtById(Long id);

    /**
     * 删除部门 并将用户 中部门置为null
     * @param id 部门id
     * @return 是否删除成功
     */
    boolean deleteByIdWithUser(Long id);

    /**
     * 通过用户id 批量添加部门
     * @param departmentId 部门id
     * @param ids 用户ids
     * @return 是否添加成功
     */
    boolean addUserByIds(Long departmentId, List<Long> ids);

    /**
     * 批量删除用户
     * @param departmentId  部门id
     * @param ids 通过用户id List 批量删除用户
     * @return 是否删除成功
     */
    boolean deleteUserByIds(Long departmentId,  List<Long> ids);

    /**
     * 获取部门包括用户的信息
     * @param id 部门id
     * @return departmentEntity
     */
    DepartmentEntity getExtById(Long id);
}
